package com.bxd.baodan.util;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;

import com.bxd.baodan.R;
import com.bxd.baodan.activity.WebViewPager;
import com.bxd.baodan.widget.ShareContentDialog;

import java.io.File;
import java.io.FileOutputStream;
import java.util.HashMap;

import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.Platform.ShareParams;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;

//import cn.sharesdk.onekeyshare.OnekeyShare;

public class ShareUtil {
	private static final String FILE_NAME = "/share_pic.jpg";
	public static String TEST_IMAGE;
	private static final String SHARE_IMG_PATH ="http://s29.9956.cn/res/bxdapp/images/logo.png";


	public static final int SHARE_ERROR = 1;
	public static final int SHARE_COMPLETED = 2;
	public static final int SHARE_CANCELED = 3;

	public static void showShareWindow(Activity activity, String title, String content,
									   String url, String imgUrl, String id, Handler handler) {
		ShareContentDialog scd = new ShareContentDialog(activity, title,
				content, url, imgUrl, id, handler);
		scd.show();
	}


	public static void initImagePath(Context context) {
		try {
			if (Environment.MEDIA_MOUNTED.equals(Environment
					.getExternalStorageState())
					&& Environment.getExternalStorageDirectory().exists()) {
				TEST_IMAGE = Environment.getExternalStorageDirectory()
						.getAbsolutePath() + FILE_NAME;
			} else {
				TEST_IMAGE = context.getApplicationContext().getFilesDir()
						.getAbsolutePath()
						+ FILE_NAME;
			}
			// 创建图片文件夹
			File file = new File(TEST_IMAGE);
			if (!file.exists()) {
				file.createNewFile();
				Bitmap pic = BitmapFactory.decodeResource(
						context.getResources(), R.drawable.logo_icon);
				FileOutputStream fos = new FileOutputStream(file);
				pic.compress(CompressFormat.JPEG, 100, fos);
				fos.flush();
				fos.close();
			}
		} catch (Throwable t) {
			t.printStackTrace();
			TEST_IMAGE = null;
		}
	}
	/**
	 * @param platform
	 *            平台名称
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void initInvirenment(String platform, String content,
			String title, String url, String imageUrl, Context context,final String id,final Handler handler) {
		try {
			ShareSDK.initSDK(context);
			ShareSDK.setConnTimeout(5000);
			ShareSDK.setReadTimeout(10000);
			Platform plat = null;
			plat = ShareSDK.getPlatform(platform);
			ShareParams sp = new ShareParams();
			if("SinaWeibo".equals(platform) || "ShortMessage".equals(platform)){
				sp.setText(content +", " + url);
			}else{
				sp.setText(content);
			}
			sp.setComment(content);
			sp.setTitle(title);
			sp.setTitleUrl(url);
			sp.setSiteUrl(url);

			sp.setUrl(url);
			sp.setShareType(Platform.SHARE_WEBPAGE);
			if("".equals(imageUrl)){
				sp.setImageUrl(SHARE_IMG_PATH);
			}else{
				sp.setImageUrl(imageUrl);
			}
//			if(!"SinaWeibo".equals(platform)){
//			}
			// 移出授权界面
			plat.setPlatformActionListener(new PlatformActionListener() {

				@Override
				public void onError(Platform arg0, int arg1, Throwable arg2) {
					showShareResultToast(WebViewPager.SHARE_ERROR,arg0.getName(),id,handler);
				}

				@Override
				public void onComplete(Platform arg0, int arg1,
						HashMap<String, Object> arg2) {
					showShareResultToast(WebViewPager.SHARE_COMPLETED,arg0.getName(),id,handler);
				}

				@Override
				public void onCancel(Platform arg0, int arg1) {
					showShareResultToast(WebViewPager.SHARE_CANCELED,arg0.getName(),id,handler);
				}
			});
			plat.share(sp);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	/**
	 * 分享文字
	 * @param platform
	 *            平台名称
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题

	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void ShareText(String platform, String content,
			String title, String imageUrl, Context context,final String id,final Handler handler) {
		try {
			ShareSDK.initSDK(context);
			ShareSDK.setConnTimeout(5000);
			ShareSDK.setReadTimeout(10000);
			Platform plat = null;
			plat = ShareSDK.getPlatform(platform);
			ShareParams sp = new ShareParams();
			sp.setTitle(title);
			sp.setText(content);
			sp.setShareType(Platform.SHARE_TEXT);
			if("".equals(imageUrl)){
			//	sp.setImageUrl("https://open.weixin.qq.com/cgi-bin/openproxy?url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz%2FAWfw3CKribWLicGZmXicu9p0faywLT0eZDH1ibptGZEc5kvagscU4VZrpbMbQNkfBpOJlk71AKDIIicicmicFBia6FnH1A%2F0");
				sp.setImageUrl(SHARE_IMG_PATH);
			}else{
				sp.setImageUrl(imageUrl);
			}
			// 移出授权界面
			plat.setPlatformActionListener(new PlatformActionListener() {

				@Override
				public void onError(Platform arg0, int arg1, Throwable arg2) {
					showShareResultToast(WebViewPager.SHARE_ERROR,arg0.getName(),id,handler);
				}

				@Override
				public void onComplete(Platform arg0, int arg1,
						HashMap<String, Object> arg2) {
					showShareResultToast(WebViewPager.SHARE_COMPLETED,arg0.getName(),id,handler);

				}

				@Override
				public void onCancel(Platform arg0, int arg1) {
					showShareResultToast(WebViewPager.SHARE_CANCELED,arg0.getName(),id,handler);
				}
			});
			plat.share(sp);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	private static void showShareResultToast(int msgType,String platForm,String id,Handler handler) {
		LogUtil.e("platform name is "+ platForm);
		if (handler != null) {
			Message msg = new Message();
			Bundle bundle = new Bundle();
			bundle.putString("platFormName", platForm);
			bundle.putString("params", id);
			msg.setData(bundle);
			msg.what = msgType;
			handler.sendMessage(msg);
		}
	}

	/**
	 * 分享链接到微信朋友圈
	 * 
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void shareMsgUrlToWeiXinPengYouQuan(String content,
			String title, String url, String imageUrl, Context context,String id,Handler handler) {
		initInvirenment("WechatMoments", content, title, url, imageUrl, context,id,handler);
	}

	/**
	 * 分享链接到微信好友
	 * 
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void shareMsgUrlToWeiXinHaoYou(String content, String title,
			String url, String imageUrl, Context context,String id,Handler handler) {
		initInvirenment("Wechat", content, title, url, imageUrl, context,id,handler);
	}

	/**
	 * 分享链接到QQ好友
	 * 
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void shareMsgUrlToQQHaoYou(String content, String title,
			String url, String imageUrl, Context context,String id,Handler handler) {
		initInvirenment("QQ", content, title, url, imageUrl, context,id,handler);
	}

	/**
	 * 分享链接到QQ空间
	 * 
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void shareMsgUrlToQQQZone(String content, String title,
			String url, String imageUrl, Context context,String id,Handler handler) {
		initInvirenment("QZone", content, title, url, imageUrl, context,id,handler);
	}

	/**
	 * 分享链接到新浪微博
	 * 
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void shareMsgUrlToSinaWeiBo(String content, String title,
			String url, String imageUrl, Context context,String id,Handler handler) {
		
		
		
		
//		ShareSDK.initSDK(context);
//		//实例化一个OnekeyShare对象
//		OnekeyShare oks = new OnekeyShare();
//		 //关闭sso授权
//		 oks.disableSSOWhenAuthorize();
//		//设置Notification的显示图标和显示文字
////		oks.setNotification(R.drawable.ic_launcher, "ShareSDK demo");
//		//设置短信地址或者是邮箱地址，如果没有可以不设置
////		oks.setAddress("12345678901");
//		//分享内容的标题
//		oks.setTitle("分享内容的标题");
//		//标题对应的网址，如果没有可以不设置
//		oks.setTitleUrl("http://www.17heli.com");
//		//设置分享的文本内容
//		oks.setText("分享的文本内容");
//		//设置分享照片的本地路径，如果没有可以不设置
////		oks.setImagePath(MainActivity.TEST_IMAGE);
//		//设置分享照片的url地址，如果没有可以不设置
//		oks.setImageUrl("http://img.appgo.cn/imgs/sharesdk/content/2013/07/25/1374723172663.jpg");
//		//微信和易信的分享的网络连接，如果没有可以不设置
//		oks.setUrl("http://sharesdk.cn");
//		//人人平台特有的评论字段，如果没有可以不设置
//		oks.setComment("comment");
//		//程序的名称或者是站点名称
//		oks.setSite("site");
//		//程序的名称或者是站点名称的链接地址
//		oks.setSiteUrl("http://www.baidu.com");
//		//设置纬度
////		oks.setLatitude(23.122619f);
//		//设置精度
////		oks.setLongitude(113.372338f);
//		//设置是否是直接分享
////		oks.setSilent(false);
//		//显示
//		oks.show(context);
		initInvirenment("SinaWeibo", content, title, url, imageUrl, context,id, handler);
	}

	/**
	 * 分享链接到腾讯微博
	 * 
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void shareMsgUrlToTencentWeiBo(String content, String title,
			String url, String imageUrl, Context context,String id,Handler handler) {
		initInvirenment("TencentWeibo", content, title, url, imageUrl, context,id, handler);
	}

	/**
	 * 分享链接到短信
	 * 
	 * @param content
	 *            分享的内容
	 * @param title
	 *            分享的标题
	 * @param url
	 *            分享链接的地址
	 * @param imageUrl
	 *            分享的LOGO链接地址
	 * @param context
	 *            上下文菜单
	 * */
	public static void shareMsgUrlToMessage(String content, String title,
			String url, String imageUrl, Context context,String id,Handler handler) {
		initInvirenment("ShortMessage", content, title, url, imageUrl, context, id, handler);
	}
}
